public class Basic_Var {
    public static void main(String[] args) {
        //------------------------字面量 变量 常量---------------------------
        // int a; //先声明
        // a=10; //再赋值
        // int a2 =10;
        // float f = 1.23f;//f或F修饰表示 float型字面量，否则默认为doule类型字面量。
        // double d1, d2, d3 = 1.23;
        // d2 = 2.0;
        // final int c=10; //java可以定义最终变量（常量） 
        // final boolean bf = false;//局部常量，声明同时必须赋值
        // bf = true;//常量(最终变量)不允许改值；
        
        /* ---------------------Java基本类型，四类八种------------------------
         * 整形: int short long byte
         * 浮点：float double
         * 布尔： boolean
         * 字符： char
         */
        /*
        int a = 123;
        int a = 8888888888; ?
        long b = 8888888888;?
        十进制 八进制 二进制 的字面量修饰
         */

        //---------------------自动类型转换-----------------------------------
        int i1 = 100;
        long x = 111111111111111L;
        float f = 1.4f;
        double d = 2.4;
        System.out.println(1+'a');
        byte b1 = 1;
        byte b2 = 2;
        /*
          1 布尔类型变量不可以转变成其他类型，反之亦此
          2 整型、字符型?、浮点型的数据在混合运算中：
            - 容量小的自动转换为容量大的
            - 容量大的转换为容量小的要强制转换
            - 多种类型混合呢？
          3. byte、short、char之间不会互相转换，在参与运算时都先转为int型，再运算
        */

        /*
         思考下面语句执行时的类型变化
         int a = 1, b = 2;(char a = ‘a’, b = ‘b’;)
         System.out.println(a+b);
         char a = ‘a’, b = ‘b’;
         System.out.println(a+b);

         int a = 1; b =2;
         double d = a+b;
         d = (a+b)*2.2;
         */

         /*练习
          int i = 1, j;
          j = j + i;
          i = i / 10; i = i * 0.1;
          float f1 = 0.1; f2 = 128;
          long l = 777777777777;
          char  c = ‘a’, c2 = 123, c3 = ‘\u1234’;
          byte  b1 = 1, b2 = 2, b3 = 333;
          byte b = b1 + b2;
          char c = c1 – c2 + 7;
          
          */
    }
}
